/*******************************************************************************
 * Copyright (c) 2016 THALES GLOBAL SERVICES.
 * 
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0
 * 
 * SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors:
 *    Thales - initial API and implementation
 *******************************************************************************/
package org.polarsys.capella.transition.system2subsystem.tests.crossphases;

import java.util.Collection;

import org.polarsys.capella.transition.system2subsystem.constants.IOptionsConstants;
import org.polarsys.kitalpha.cadence.core.api.parameter.GenericParameter;

//@formatter:off
/**
 * identifier:name:'[CSCI] ciName',id=#49aabac9-01b1-4b6e-8d97-22a458c5583d

 * - Create '[CSCI] ciName' [ConfigurationItem]
 *   - Create '[Physical Artifact Realization] to PC11' [PhysicalArtifactRealization]
 *     > Link '[Physical Artifact Realization] to PC11' to '[CSCI] ciName' [sourceElement], 'PC11' [targetElement]
 *   - Create '[Physical Artifact Realization] to PC12' [PhysicalArtifactRealization]
 *     > Link '[Physical Artifact Realization] to PC12' to '[CSCI] ciName' [sourceElement], 'PC12' [targetElement]
 */
//@formatter:on
public class ScenarioComponentMerge {

  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO = "049fde20-0a8c-4eb0-b96b-2f5d08306cef"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__LC_3 = "49c6a3e6-9253-4d22-b43b-4a5f116174d8"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__LC11 = "2cec23e1-4498-4342-a44d-83e9baee62f8"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__LC22 = "231cbff2-094f-4ee1-b92b-c766af147ce4"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__LC_4 = "0ed8ff09-c551-4242-b13b-f6c6d673a2e9"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_1 = "b5524ff3-c8ed-4689-a1f6-42fc7bb81ef7"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_2 = "f7b64ed2-10ab-4390-af63-b4d7721088d8"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_3 = "120205b2-f61b-4616-a6d4-afb8c66d4771"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO = "67fd1b58-840a-4274-ac72-20212b3bf65c"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__LOGICALFUNCTION_1 = "93e78ccd-e3d4-4bad-9088-f55dad2a383b"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__LOGICALFUNCTION_2 = "42f3259c-eb4c-45a8-931d-12e7b0d6e596"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__LOGICALFUNCTION_3 = "51dc8e55-914c-4ed2-ae27-b4b15f5acda6"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__LOGICALFUNCTION_4 = "037a5631-6a45-4a19-bab5-02091274e357"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_2 = "1c32136e-6b9e-469a-ab77-2f071f039d74"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_1 = "cb989ebc-05bb-4971-913f-9998c2b62db3"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_3 = "6a16471c-139d-488f-89e8-0b8394423562"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO = "166acec2-2b36-4ce9-b2b6-2c113091d942"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__PHYSICALFUNCTION_4 = "8ecb4455-dbdf-45c0-b037-fee8de91c4ec"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__PHYSICALFUNCTION_2 = "eb4fa8a7-a008-42cf-bd28-26465bed2acf"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__PHYSICALFUNCTION_1 = "fe48fb54-29b1-47b6-9ba0-bfcd81fd5b70"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__PHYSICALFUNCTION_3 = "e0a1aa7a-652b-427e-8525-035f0dc9b412"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_2 = "88819d74-cf79-4ce6-9c61-4c0b3a641e16"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_1 = "46a92f33-a602-4205-a5bf-ab4fc0277d40"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_3 = "866d050e-457a-404c-a78b-63101506d0d3"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO = "492d99c3-0465-47f1-8170-48e80a8367fe"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__PC11 = "b9c6f3c7-8dba-4adb-8174-3a7fcac4bc86"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__PC41 = "87a8d8b3-c3ed-4c40-98d7-47c80cfcd97f"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__PC22 = "7ae12d75-de4b-4f38-9e55-33f58931a779"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__PC31 = "1536c5b8-60d9-4bd5-ac93-45d55fa47fcf"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_2 = "dce85ef9-5736-4733-b428-81d574ae9041"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_1 = "a149d2c5-4905-4fa3-8cee-e60d9a2d2852"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_3 = "dd074f66-ce47-4da7-a45a-7bdc3d72bf35"; //$NON-NLS-1$

  public static String SCENARIOMERGECOMPONENTS__LA__LC_1__LC11 = "3d28bffe-ad38-4559-9118-f9bee94c3976"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__PC_1 = "d4e6db8a-7029-4131-af0e-5f1d1331aa24"; //$NON-NLS-1$

  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1__EXCHANGE_SCENARIO = "049fde20-0a8c-4eb0-b96b-2f5d08306cef"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1__FUNCTION_SCENARIO = "67fd1b58-840a-4274-ac72-20212b3bf65c"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1__FUNCTION_SCENARIO = "166acec2-2b36-4ce9-b2b6-2c113091d942"; //$NON-NLS-1$
  public static String SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1__EXCHANGE_SCENARIO = "492d99c3-0465-47f1-8170-48e80a8367fe"; //$NON-NLS-1$

  /**
   * Merge of components / Scenario A test for merge of sub components, instance roles should be present for merged
   * components
   */
  public static class Test1 extends CrossPhasesTest {

    @Override
    public void setUp() throws Exception {
      super.setUp();
      getHeadlessParameters().addSharedParameter(new GenericParameter<Boolean>(IOptionsConstants.SCENARIO_EXPORT,
          Boolean.TRUE, IOptionsConstants.SCENARIO_EXPORT));
    }

    @Override
    protected Collection<?> getProjectionElements() {
      return getObjects(SCENARIOMERGECOMPONENTS__LA__LC_1__LC11);
    }

    @Override
    protected void verify() {
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1__EXCHANGE_SCENARIO);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1__FUNCTION_SCENARIO);

      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__LC_3);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__LC11);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__LC22);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_1);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_1);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_2);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_2);

      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__LC_4);
      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_3);
      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_3);

      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__LOGICALFUNCTION_1);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__LOGICALFUNCTION_2);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__LOGICALFUNCTION_3);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_2);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_1);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_1);

      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__LOGICALFUNCTION_4);
      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_3);
      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__LA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_3);
    }

  }

  /**
   * Merge of components / Scenario A test for merge of sub components, instance roles should be present for merged
   * components
   */
  public static class Test2 extends CrossPhasesTest {

    public void setUp() throws Exception {
      super.setUp();
      getHeadlessParameters().addSharedParameter(new GenericParameter<Boolean>(IOptionsConstants.SCENARIO_EXPORT,
          Boolean.TRUE, IOptionsConstants.SCENARIO_EXPORT));
    }

    @Override
    protected Collection<?> getProjectionElements() {
      return getObjects(SCENARIOMERGECOMPONENTS__PA__PC_1);
    }

    @Override
    protected void verify() {
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1__EXCHANGE_SCENARIO);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1__FUNCTION_SCENARIO);

      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__PC11);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__PC41);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__PC22);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_2);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_2);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_1);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_1);

      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__PC31);
      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_3);
      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__ES_CAPABILITYREALIZATION_1_EXCHANGE_SCENARIO__FUNCTIONALEXCHANGE_3);

      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__PHYSICALFUNCTION_2);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__PHYSICALFUNCTION_1);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__PHYSICALFUNCTION_3);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_2);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_2);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_1);
      mustBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_1);

      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__PHYSICALFUNCTION_4);
      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_3);
      shouldNotBeTransitioned(
          SCENARIOMERGECOMPONENTS__PA__CAPABILITIES__CAPABILITYREALIZATION_1__FS_CAPABILITYREALIZATION_1_FUNCTION_SCENARIO__FUNCTIONALEXCHANGE_3);
    }
  }
}
